<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>json\异步加载</title>
		<!--<script type="text/javascript" src="js/tools.js" async="async"></script>-->
		<!--<script type="text/javascript" src="js/tools.js" defer="defer"></script>-->
	</head>
	<body>
		
		
		<script type="text/javascript">
			/*//JSON.parse)();
			//JSON.stringify();
			var obj = {
				"name" : "abc",
				"age" : 123
			}
			var str = JSON.stringify(obj);
			var obja = JSON.parse(str);*/
			
			
//异步
		/*
		 * domTree + cssTree = renderTree
		 * 
		 * reflow(重排): dom节点的删除，添加           效率低
		 * 				dom节点的宽高变化，位置变化、display:none-->block
		 * 				offsetWidth  offsetLeft
		 * repaint(重绘): 
		 */

//异步加载方法
			/*
			 * 1.defer异步加载，但要等到dom文档全部解析完才被执行。只有IE能用。也可以将
			 * 代码写到内部
			 * 2.async异步加载。加载完就执行，async只能加载外部脚本，
			 * 不能把js写在script标签里
			 * 1.2执行时也不阻塞页面
			 * 3.创建script，插入到DOM中，加载完毕后callback.
			 */
			
			var script = document.createElement('script');
			script.type = "text/javascript";
			script.src = "js/tools.js";//开始下载，但是不执行
			
			script.onload = function(){//兼容性好  Safari chrome firefox opera
				test();
			}
			
			script.onreadystatechange = function(){//IE
				if(script.readyState == "complete" || script.readyState == "loaded"){
					test();
				}
			}
			
			document.head.appendChild(script);//开始执行
//			test();//还没下载你完成
			
		</script>
		
	</body>
</html>
